home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk23 / fastdisk / german.doc < prev    next >
Text File  |  1995-03-18  |  9KB  |  234 lines

  1.  
  2.                              FastDisk V1.5
  3.  
  4.  
  5.                         Für AMIGA 500/1000/2000
  6.  
  7.                        Sprache : Aztec C - V3.4a
  8.  
  9.  
  10.  
  11.                            Written 1987 by:
  12.  
  13.                           Torsten Stolpmann
  14.                         Wilhelm-Raabe Str. 26
  15.                          6750 Kaiserslautern
  16.  
  17.  
  18.  
  19. Was ist FastDisk?
  20.  
  21. FastDisk ist ein Programm zur Optimierung der zum Teil chaotischen
  22. Diskstruktur von Amiga-Disketten.
  23.  
  24. Jeder kennt die, manchmal bis zu mehreren Minuten dauernde, Wartezeit auf
  25. das Einlesen eines längeren Directorys.
  26. FastDisk beschleunigt diesen Vorgang in der Regel um das drei- bis
  27. fünffache.
  28.  
  29. Jeder kennt das verzweifelte Kreischen der Laufwerke beim Einlesen von
  30. Workbench-Icons.
  31. FastDisk reduziert die Kopfbewegungen des Laufwerks auf ein Minimum.
  32.  
  33. FastDisk beschleunigt die Validierungszeiten (nach Einlegen einer neuen
  34. Diskette) und den Bootvorgang.
  35.  
  36. FastDisk ist in der Lage, die Ladezeiten von Diskette um typischerweise
  37. 30-50% zu verringern.
  38.  
  39.  
  40.  
  41.  
  42.  
  43. Was macht FastDisk?
  44.  
  45.  
  46. FastDisk erreicht die obigen Ergebnisse, indem es eine Diskette sektorweise
  47. kopiert, allerdings werden die physikalischen Positionen der Sektoren auf
  48. der Zieldiskette verändert. Das ist alles. Die Zieldiskette ist weiterhin
  49. eine normale AmigaDos-Diskette, es entstehen keine Kompatibilitätsprobleme.
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Wie funktioniert FastDisk?
  56.  
  57. Um die Funktionsweise von FastDisk zu verstehen, muß man sich mit der Art
  58. beschäftigen, in der AmigaDos die Diskette verwaltet. Nähere (wenn auch
  59. nicht immer ausreichende) Informationen hierzu findet man im
  60. AmigaDos-Manual.
  61. Hier nur die wichtigsten Informationen:
  62.  
  63. Die 1760 Sektoren (Blocks) zu je 512 Byte einer AmigaDos-Diskette werden in
  64. folgende Typen unterteilt:
  65.  
  66. 1. Bootsectoren
  67. 2. Rootblock
  68. 3. Directory-Blocks
  69. 4. Fileheader-Blocks
  70. 5. Filextension-Blocks
  71. 6. Datenblocks
  72.  
  73. Die Bootsectoren sind immer die Sectoren 0 und 1. Diese sind auf jeder
  74. AmigaDos-Diskette vorhanden und werden beim Booten der Diskette gelesen und
  75. (falls es sich um eine bootbare Diskette handelt) wird ein sich dort
  76. befindliches Programm ausgeführt.
  77. FastDisk kopiert diese Blöcke unverändert.
  78. Der Rootblock (er befindet sich immer im Sector 880) enthält neben diverser
  79. weiterer Informationen (z.B. Diskettenname, Creationdate etc.) eine 72
  80. Einträge große Hash-Tabelle mit Zeigern auf alle Files/Directories, die
  81. sich in der Root-Directory befinden.
  82. Diese Einträge in der Tabelle sind nach einem festgelegten Hash-Algorithmus
  83. geordnet, hierzu wird der File/Directory Name herangezogen.
  84. Falls es sich bei einem Eintrag um einen Directoryeintrag handelt, so zeigt
  85. der Zeiger auf einen Directoryblock, der ähnlich dem Rootblock aufgebaut
  86. ist.
  87. Falls es sich um einen Fileeintrag handelt, so zeigt der Zeiger auf einen
  88. Fileheaderblock. Es müssen nicht alle Einträge in der Tabelle belegt sein,
  89. daher werden Zeiger vom Wert NULL als nicht belegte Einträge interpretiert.
  90. Nun kann es vorkommen, daß mehrere Einträge den gleichen Platz in der
  91. Hash-Tabelle haben können (Der Hash-Algorithmus liefert die gleiche
  92. Position in der Tabelle).
  93. Diese Kollisionen werden derart aufgelöst, daß die betreffenden
  94. Headerblocks über einen entsprechenden Zeiger im Headerblock zu einer
  95. linearen Liste verkettet werden.
  96.  
  97. Die Fileheaderblocks enthalten nun wiederum eine 72 Einträge große Tabelle
  98. mit Zeigern auf alle Datenblocks, die zu dem betreffenden File gehören.
  99. Da die Tabelle nur 72 Einträge beinhaltet wird für den Fall, daß ein File
  100. mehr als 72 Datenblocks beansprucht, eine einfach verkettete Liste von
  101. Fileextensionblocks angelegt, diese Blocks können jeweils weitere 72
  102. Einträge fassen.
  103.  
  104. Außerdem ist es wichtig zu wissen, daß Disketten-I/O beim AMIGA
  105. trackorientiert ist, das heißt, daß sobald eine Spur auf der Diskette
  106. angefahren wird, die gesamten Sektoren dieser Spur eingelesen werden, und
  107. solange im Speicher zur Verfügung stehen, solange der Schreib-Lesekopf
  108. diese Spur nicht verläßt. Dies kann von grossem Vorteil sein, wenn die
  109. physikalische Positionierung der Blocks auf der Diskette entsprechend
  110. vorgenommen wurde.
  111.  
  112. Zur Optimierung der Diskettenstruktur bieten sich grundsätzlich folgende
  113. Möglichkeiten:
  114.  
  115. 1. Die physikalische Reihenfolge der File/Directoryheader auf der Diskette
  116. wird entsprechend der Reihenfolge in den Hashtabellen angelegt. Da die
  117. Kommandos zur Auflistung der Directories entlang der Hashtabelle vorgehen,
  118. werden diese enorm beschleunigt. Auch die Validierungszeit wird hierdurch
  119. verkürzt.
  120.  
  121. 2. Zur Plazierung der Fileheaderblocks bieten sich grundsätzlich zwei
  122. Möglichkeiten an, entweder man gruppiert alle Headerblocks möglichst nahe
  123. an den Roottrack (was das Einlesen des Directorys beschleunigt), oder man
  124. legt die gesamten Datenbloecke jeweils direkt hinter ihren Headerbloecken ab (die Headerblocks sind jetzt zwar ueber die gesamte Diskette verstreut,
  125. allerdings wird hierdurch das Laden von Files beschleunigt, da für den
  126. Headerblock nicht mehr ein weiterer Track auf der Diskette angefahren
  127. werden muß).
  128. Für die Directoryheader bieten sich ähnliche Lösungen an, im Falle
  129. schneller Directories empfiehlt sich eine Gruppierung innerhalb der
  130. Fileheaderblocks (die entsprechende Position ergibt sich aus der
  131. Hash-Tabellen-Position.
  132. Für möglichst schnelle Ladezeiten hat es sich als vorteilhaft erwiesen, die
  133. Directoryheader im Roottrack unterzubringen (also direkt hinter dem
  134. Rootblock), normalerweise reicht dieser Platz aus, um alle Directoryheader
  135. unterzubringen.
  136. Wie man sieht haben beide Moeglichkeiten ihre Vor- und Nachteile, darum
  137. wurde beide Optimierungsverfahren implementiert, je nachdem ob man bei der
  138. jeweiligen Diskette mehr Wert auf ein schnelles Directory (z.B.
  139. Datendisketten) oder auf einen schnellen Ladevorgang legt (z.B. 
  140. orkbench-Disk).
  141. AmigaDOS selber verfolgt übrigends bei der Positionierung der
  142. Diskettenblocks eine Strategie, die die Nachteile der beiden obigen
  143. Verfahren kombiniert. Es wird versucht den Headerblock und den ersten 
  144. atenblock des Files hintereinander in der Nähe des Roottracks abzulegen
  145. (der Rest wird irgendwo außen abgelegt). Dies sollte das Laden von sehr
  146. kurzen Files, die nur einen Datenblock beanspruchen, beschleunigen (z.B.
  147. system-configuration, .info-Files etc.).
  148.  
  149. FastDisk geht hier konsequenter vor, und legt grundsätzlich alle folgenden
  150. Files hinter ihrem Headerblock ab:
  151.  
  152.     Startup-Sequence
  153.     System-Configuration
  154.     alle Files mit der Endung .info
  155.  
  156.  
  157.  
  158. Wann funktioniert FastDisk nicht?
  159.  
  160. FastDisk benötigt mindestens zwei Diskettenlaufwerke.
  161.  
  162. FastDisk benötigt Chip-Memory. Viel Chip-Memory.
  163. Beim Kopiervorgang werden alle Header- und Directoryblocks im Speicher
  164. gehalten. Sollte hierfür nicht genügend Chip-Memory zur Verfügung stehen,
  165. bricht das Programm ab.
  166. Auch ansonsten sollte man FastDisk soviel Speicher wie möglich zur
  167. Verfügung stellen, da FastDisk während des Kopiervorgangs versucht, erst
  168. später benötigte Sectoren, die sich bereits im Trackbuffer befinden, im
  169. Speicher zur Verfügung zu halten (Cache). D.h. je mehr Speicher zur
  170. Verfügung steht, desto schneller läuft der Kopiervorgang ab.
  171.  
  172. FastDisk erwartet eine eine Standard-AmigaDOS-Diskette, d.h. es sollten
  173. sich insbesondere keine Sectoren auf der Diskette befinden, die nicht von
  174. AmigaDOS verwaltet werden, da diese (abgesehen von den Bootsectoren) nicht
  175. mitkopiert werden.
  176.  
  177. FastDisk kann keine Disketten kopieren, deren DOS-Struktur zerstört bzw.
  178. inkonsistent ist. FastDisk erkennt solche Fehler und empfiehlt das einzige
  179. Hilfsmittel: DiskDoctor.
  180.  
  181.  
  182.  
  183. Wie bedient man FastDisk?
  184.  
  185. FastDisk kann sowohl vom CLI als auch von der Workbench aufgerufen werden.
  186. Falls es von der Workbench aufgerufen wird, öffnet es sein eigenes Fenster
  187. (ein Feature von Aztec 3.4a). Ein Icon mit den nötigen  Einträgen im
  188. Tooltype-Feld wird mitgeliefert.
  189.  
  190. Die Argumente für den Aufruf vom CLI lauten:
  191.  
  192. Usage   : FastDisk [FROM] drive [TO] drive [FASTDIR] [NOFORMAT]
  193. Defaults: FastDisk FROM df0: TO df1:
  194.  
  195. FROM und TO sind optional und müssen nur angegeben werden, wenn man die
  196. Argumente unbedingt in umgekehrter Reihenfolge angeben will (Also FastDisk
  197. df1: df0: kopiert von df1: nach df0:, FastDisk TO df1: FROM df0: von df0:
  198. nach df1:).
  199. Bei der Angabe von FASTDIR wird bei der Optimierung auf schnelle Directorys
  200. geachtet, ohne Angabe wird auf kurye Ladezeiten hin optimiert.
  201. Mit der Angabe von NOFORMAT wird die standardmäßige Formatierung der
  202. Zieldiskette unterdrückt, dieses resultiert in etwas kürzeren Kopierzeiten,
  203. hat aber den Nachteil, daß bei einer späteren Behandlung der Zieldiskette
  204. mit DiskDoctor Konflikte mit früheren Daten auf der Zieldiskette entstehen
  205. können. DiskDoctor handelt in solchen Fällen des öfteren recht
  206. unverständlich, und entfernt auch schon mal ein eigentlich intaktes File.
  207.  
  208.  
  209. Aufruf von der Workbench:
  210.  
  211. Die entsprechenden Optionen befinden sich im ToolType-Feld des
  212. FastDisk-Icons (erreichbar über das Info-Kommando).
  213.  
  214. Die ToolTypes sind:
  215.  
  216. WINDOW=      Hier steht die Definition des Windows, das beim
  217.             Start geöffnet wird, dies sollte nicht geändert
  218.              werden.
  219.  
  220. FROM=        Hier steht das Quell-Laufwerk (df0: - df3:)
  221.  
  222. TO=          Hier steht das Ziel-Laufwerk (df0: - df3:)
  223.  
  224. FASTDIR=     ON stellt diese Option an, OFF (oder alles
  225.              andere) stellt sie ab.
  226.  
  227. NOFORMAT=    Auch hier sollte ON oder OFF stehen.
  228.  
  229. Defaults:    FROM=df0:
  230.              TO=df1:
  231.              FASTDIR=OFF
  232.              NOFORMAT=OFF
  233.  
  234.